FIG. 1 is a block diagram showing the internal architecture of such an electronic circuit. A central processing unit (CPU) exchanges data with internal peripheral units by means of a data bus DB. These peripheral units comprise a first read only memory ROM for permanently storing a management program. They also comprise a second read only memory which is an electrically erasable and programmable read only memory (EEPROM) for permanently storing confidential information. They further comprise a random access memory RAM for temporarily storing information connected with the operation of the circuit. In general, they also comprise at least one register Reg for storing binary information.
The invention applies notably to a microcontroller for an IC card, also known as a smart card. The confidential information stored in the EEPROM would for example be a personal code known only to the user. This personal code must be supplied by the user for using an apparatus such as a cash dispenser, a pay TV decoder, a GSM type mobile telephone, etc . . . in combination with the IC card.
The IC card is classically inserted inside a card reader of the apparatus. The IC card comprises contact pads cooperating with corresponding terminals of the reader for exchanging data between the card and the reader, and for supplying electrical power to the IC card using an electrical power supply at the reader. The apparatus comprises a keyboard or similar device by means of which the user enters his personal code. The personal code entered by the user is sent to the microcontroller of the IC card, which comprises means for comparing it with the personal code stored in the EEPROM. In case of agreement, the user is given access to the service provided by the apparatus.
A typical attempt to fraud consists in using a stolen IC card in a pirated IC card reader comprising means for observing the data placed on the data bus DB. It is then theoretically possible to see on the data bus DB the confidential data corresponding to the user's personal code when these data are read from the EEPROM and inserted on the data bus DB. The only difficulty for the pirate user is knowing at what precise moment these data appear on the data bus DB so as to identify them amongst the flow of data transiting on that bus when the electronic circuit is in operation.
Now, it is observed that the electrical current consumed by the electronic circuit during operation is not constant but exhibits variations as a function, amongst others, of the reading operations carried out in different memories of the electronic circuit. Indeed, the memory cells of the different memories exhibit an impedance which, to a certain extent, depends on the programmed or erased state of the cell but which—to a larger extent—varies from one type of memory to another.
In FIG. 2, curve 21 thus indicates the time variations of the electrical current I consumed by the microcontroller during operation. This current can take on different increasing values I(Reg), I(ROM), I(RAM), I(EEPROM) for readout operations respectively in the register Reg, the ROM memory, the RAM memory or the EEPROM memory. Accordingly, in order to know the confidential data read from the EEPROM it only requires the pirate user to observe the instantaneous electrical current consumed by the microcontroller (using appropriate means such as an ammeter in series between a power supply terminal of the reader provided for electrically supplying the IC card and the corresponding contact pad of the latter) and to note down the data present on the data bus DB at the moment when this current exhibits the value I(EEPROM).
In order to prevent this type of fraud, there has already been proposed means for masking the variations in the current consumed by the electronic circuit during operation, such means acting so that the current consumed by the electronic circuit in operation continuously has a same value Iconst. The latter is greater than the highest current normally consumed by the electronic circuit during operation. An example of such means is described in patent application EP-A-0 500 461, where they are used to mask variations in the consumed current during a memory readout operation due to the programmed or erased state of the memory cells. They comprise for instance a constant current source (of constant value Iconst) connected in series with the memory cells between the positive power supply terminal Vcc and ground, as well as resistor connected in parallel with the memory cells.
In FIG. 2, the current (constant at value Iconst) consumed by the electronic circuit according to this prior art is depicted by curve 22, which substantially corresponds to a horizontal line. The weak ripples in curves 21 and 22 correspond to spurious impedances in the electronic circuit.
This known solution nevertheless has the drawback of significantly increasing the electronic circuit's current consumption. Indeed, the current consumed by the electronic circuit in operation is continuously equal to the value Iconst which is greater than the maximum value of the current consumed in itself by the electronic circuit during operation. This high consumption generates problems connected notably with temperature rises in the electronic circuit due to the Joule effect.